home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Technology Seed / Jan. '98 ATS.toast / QuickTime™ 3.0b11 / QTPublicInterfaces / RIncludes / ImageCodec.r < prev    next >
Encoding:
Text File  |  1998-01-12  |  6.1 KB  |  218 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        ImageCodec.r
  3.  
  4.      Contains:    QuickTime interfaces
  5.  
  6.      Version:    Technology:    
  7.                  Release:    QuickTime 3.0 Beta
  8.  
  9.      Copyright:    © 1990-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18.  
  19. #ifndef __IMAGECODEC_R__
  20. #define __IMAGECODEC_R__
  21.  
  22. #ifndef __CONDITIONALMACROS_R__
  23. #include "ConditionalMacros.r"
  24. #endif
  25.  
  26.  
  27. #include "Components.r"
  28. #include "ImageCompression.r"
  29.  
  30. #define kParameterTitleName             'name'
  31. #define kParameterTitleID                 1
  32.  
  33. #define kParameterWhatName                 'what'
  34. #define kParameterWhatID                 1
  35.  
  36. #define kParameterSourceCountName         'srcs'
  37. #define kParameterSourceCountID         1
  38.  
  39. #define kParameterDependencyName         'deep'
  40. #define kParameterDependencyID             1
  41.  
  42.  
  43.     #define kParameterListDependsUponColorProfiles    OSType { "prof" }
  44.     #define kParameterListDependsUponFonts            OSType { "font" }
  45.  
  46. #define kParameterEnumList                 'enum'
  47. #define kParameterAtomTypeAndID         'type'
  48.  
  49.         #define kNoAtom                     OSType { "none" }
  50.         #define kAtomNoFlags                 long { "0" }
  51.         #define kAtomNotInterpolated         long { "1" }
  52.         #define kAtomInterpolateIsOptional     long { "2" }
  53.  
  54. #define kParameterDataType                 'data'
  55.  
  56.         #define kParameterTypeDataLong         long { "2" }
  57.         #define kParameterTypeDataFixed     long { "3" }
  58.         #define kParameterTypeDataRGBValue     long { "8" }
  59.         #define kParameterTypeDataDouble     long { "11" }
  60.         #define kParameterTypeDataText         OSType { "text" }
  61.         #define kParameterTypeDataEnum        OSType { "enum" }
  62.         #define kParameterTypeDataBitField     OSType { "bool" }
  63.         #define kParameterTypeDataImage        OSType { "imag" }
  64.  
  65. #define kParameterDataRange             'rang'
  66. #define kParameterDataBehavior             'ditl'
  67.  
  68.     // items edited via typing
  69.         #define kParameterItemEditText         OSType { "edit" }
  70.         #define kParameterItemEditLong         OSType { "long" }
  71.         #define kParameterItemEditFixed     OSType { "fixd" }
  72.         #define kParameterItemEditDouble     OSType { "doub" }
  73.  
  74.     // items edited via control(s)
  75.         #define kParameterItemPopUp         OSType { "popu" }
  76.         #define kParameterItemRadioCluster     OSType { "radi" }
  77.         #define kParameterItemCheckBox         OSType { "chex" }
  78.         #define kParameterItemControl         OSType { "cntl" }
  79.         
  80.     // special user items
  81.         #define kParameterItemLine             OSType { "line" }
  82.         #define kParameterItemColorPicker     OSType { "pick" }
  83.         #define kParameterItemGroupDivider    OSType { "divi" }
  84.         #define kParameterItemStaticText    OSType { "stat" }
  85.         #define kParameterItemDragImage        OSType { "imag" }
  86.  
  87.  
  88.  
  89.         // flags valid for lines and groups
  90.         #define kGraphicsNoFlags             long { "0" }
  91.         #define kGraphicsFlagsGray             long { "1" }
  92.  
  93.         // flags valid for groups
  94.         #define kGroupNoFlags                         long { "0" }
  95.         #define kGroupAlignText                     long { "65536" }
  96.         #define kGroupSurroundBox                     long { "131072" }
  97.         #define kGroupMatrix                         long { "262144" }
  98.         #define kGroupNoName                        long { "524288" }
  99.         #define kGroupSurroundWithGray                long { "131073" }
  100.         #define kGroupSurroundWithGrayAlign            long { "196609" }
  101.         #define kGroupSurroundWithGrayNoName        long { "655361" }
  102.         #define kGroupSurroundWithGrayAlignNoName    long { "720897" }
  103.         
  104.         // flags valid for popup/radiocluster/checkbox/control
  105.         #define kDisableControl            long { "1" }
  106.         #define kDisableWhenNotEqual    long { "1" }
  107.         #define kDisableWhenEqual        long { "17" }
  108.         #define kDisableWhenLessThan    long { "33" }
  109.         #define kDisableWhenGreaterThan    long { "49" }
  110.  
  111.         // flags valid for popups
  112.         #define kPopupStoreAsString        long { "65536" }
  113.  
  114. #define kParameterDataUsage             'use '
  115.  
  116.         #define kParameterUsagePixels        OSType { "pixl" }
  117.         #define kParameterUsageRectangle    OSType { "rect" }
  118.         #define kParameterUsagePoint        OSType { "xy  " }
  119.         #define kParameterUsage3DPoint        OSType { "xyz " }
  120.         #define kParameterUsageDegrees        OSType { "degr" }
  121.         #define kParameterUsageRadians        OSType { "rads" }
  122.         #define kParameterUsagePercent        OSType { "pcnt" }
  123.         #define kParameterUsageSeconds        OSType { "secs" }
  124.         #define kParameterUsageMilliseconds    OSType { "msec" }
  125.         #define kParameterUsageMicroseconds    OSType { "µsec" }
  126.         #define kParameterUsage3by3Matrix    OSType { "3by3" }
  127.  
  128. #define kParameterDataDefaultItem         'dflt'
  129. #define kParameterInfoLongName             '©nam'
  130. #define kParameterInfoCopyright         '©cpy'
  131. #define kParameterInfoDescription         '©inf'
  132. #define kParameterInfoWindowTitle         '©wnt'
  133. #define kParameterInfoPicture             '©pix'
  134. #define kParameterInfoIDs                 1
  135.  
  136.  
  137. type 'cdec' {
  138.     hex string;
  139. };
  140.  
  141.  
  142. type 'cdci' {
  143.     pstring[31];
  144.     hex integer    version;
  145.     hex integer    revlevel;
  146.     hex longint    vendor;
  147.     hex longint    decompressFlags;
  148.     hex longint    compressFlags;
  149.     hex longint    formatFlags;
  150.     byte        compressionAccuracy;
  151.     byte        decompressionAccuracy;
  152.     integer        compressionSpeed;
  153.     integer        decompressionSpeed;
  154.     byte        compressionLevel;
  155.     byte        resvd;
  156.     integer        minimumHeight;
  157.     integer        minimumWidth;
  158.     integer        decompressPipelineLatency;
  159.     integer        compressPipelineLatency;
  160.     longint        privateData;
  161. };
  162.  
  163.  
  164. #define    compressorComponentType            'imco'
  165. #define    decompressorComponentType        'imdc'
  166.  
  167.  
  168. /* Resource type used for the creation of parameter description atoms */
  169. type 'atms' {
  170.     longint;    // root atom count
  171.     
  172.     array AtomArray {
  173.         literal longint;        // atomType
  174.         longint;                // atomID
  175.         longint noChildren = 0;    // children
  176.         longint =  $$CountOf(AtomData);
  177.         array AtomData {
  178.             switch {
  179.             case long:
  180.                 key literal longint = 'long';
  181.                 pstring;            // data
  182.             case short:
  183.                 key literal longint = 'shrt';
  184.                 pstring;            // data
  185.             case noMininumFixed:
  186.                 key literal longint = 'nmiF';
  187.                 pstring = "";        // data
  188.             case noMaximumFixed:
  189.                 key literal longint = 'nmaF';
  190.                 pstring = "";        // data
  191.             case noMininumDouble:
  192.                 key literal longint = 'nmiD';
  193.                 pstring = "";        // data
  194.             case noMaximumDouble:
  195.                 key literal longint = 'nmaD';
  196.                 pstring = "";        // data
  197.             case fixed:
  198.                 key literal longint = 'fixd';
  199.                 pstring;            // data
  200.             case double:
  201.                 key literal longint = 'doub';
  202.                 pstring;            // data
  203.             case string:
  204.                 key literal longint = 'str ';
  205.                 pstring;            // data
  206.             case OSType:
  207.                 key literal longint = 'osty';
  208.                 pstring;            // data
  209.             };
  210.             
  211.         };
  212.     };
  213. };
  214.  
  215.  
  216. #endif /* __IMAGECODEC_R__ */
  217.  
  218.